package com.city.java.products.mapper;

import com.city.java.products.pojo.entity.Products;
import org.apache.ibatis.annotations.Param;
import java.util.List;

public interface ProductMapper {
    /**
     * 插入新商品
     * @param product 商品对象
     * @return 影响行数
     */
    int insertProduct(Products product);

    /**
     * 根据商品ID查询商品
     * @param productId 商品ID
     * @return 商品对象
     */
    Products selectById(@Param("productId") Long productId);

    /**
     * 查询所有商品列表
     * @return 商品列表
     */
    List<Products> selectAll();

    List<Products> select(Products products);

    Long getTotal(Products products);

    /**
     * 根据积分范围查询商品列表
     * @param minPoints 最小积分
     * @param maxPoints 最大积分
     * @return 商品列表
     */
    List<Products> selectByPointsRange(@Param("minPoints") Integer minPoints, @Param("maxPoints") Integer maxPoints);

    /**
     * 根据商品名称模糊查询商品列表
     * @param productName 商品名称
     * @return 商品列表
     */
    List<Products> selectByName(@Param("productName") String productName);

    /**
     * 根据商品ID更新商品信息
     * @param product 商品对象
     * @return 影响行数
     */
    int updateById(Products product);

    /**
     * 根据商品ID删除商品
     * @param productId 商品ID
     * @return 影响行数
     */
    int deleteById(@Param("productId") Long productId);
}
